<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <ul>
      <li>111</li>
      <li>222</li>
      <li>333</li>
    </ul>

    <script>
      // 全局作用域    函数外部的内容
      // 局部作用域    函数内部的作用域 局部作用域
      var x = 88
      y = 88
      console.log(window)
      console.log(window.x)
      // delete window.x

      // function say() {
      //   function a() {}
      //   var x = 99
      //   var obj = {}
      // }

      // 动态作用域
      var name = '安宁'
      function run() {
        console.log(this.name)
      }
      run()
      var obj = { name: '坤坤' }
      var runRes = run.bind(obj)
      runRes()
      // let 和const 和var作用 都是创建变量
      // let 和const会产生块级作用域
      // 1 .块级作用域 {} 内部用let和const创建的变量 外部无法访问
      if (true) {
        let mynum = 888
        console.log(mynum)
      } else {
        let age = 999
      }
      // console.log(mynum)
      // console.log(age) //报错 age 由let创建是局部变量

      // for (var i = 0; i < 4; i++) {
      //   setTimeout(function() {
      //     console.log(i)
      //   }, 2000)
      // }
      // for (let i = 0; i < 4; i++) {
      //   setTimeout(function() {
      //     console.log(i)
      //   }, 2000)
      // }

      var lis = document.getElementsByTagName('li')
      for (let i = 0; i < lis.length; i++) {
        lis[i].onclick = function() {
          console.log(i)
        }
      }
      //2 let和const    没有变量提升
      // function tools() {
      //   console.log(x)
      //   let x = 99
      // }
      // tools()
      //3. let 和const 不能重新定义变量
      var kk = 99
      var kk = 199
      let sex = '男'
      // let sex = '女'//报错
      //4  ；let和const 存在 暂时性死区 ， 使用let命令声明变量之前，该变量都是不可用的。这在语法上，称为“暂时性死区”
      if (true) {
        let x = 88
        let y = 99
        console.log(x)
        console.log(y)
      }
      // 5 const 定义常量    不能重新赋值
      // 创建为引用类型  可以对象操作改变
      const url = 'http://www.baidu.com'
      const router = {
        mode: 'history',
        routes: [{ path: '/home', name: '主页' }],
        name: '路由'
      }
      router.mode = 'production'
      delete router.name
      console.log(router)

      const Home = require('./es6的介绍.html')
    </script>
  </body>
</html>
